home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / os2 / plnk081.zip / pilot-link.0.8.1 / Java / Pdapilot / File.java < prev    next >
Text File  |  1997-08-08  |  5KB  |  154 lines

  1.  
  2. package Pdapilot;
  3.  
  4. /** A representation of an open database.
  5.  */
  6.  
  7. public class File {
  8.     private int _pf;
  9.     private Database dbClass;
  10.     
  11.     private native void pi_file_create(String name, DBInfo info) throws java.io.IOException;
  12.     private native void pi_file_open(String name) throws java.io.IOException;
  13.     private native Record pi_file_read_record(int index, Database dbClass) throws java.io.IOException;
  14.     private native Record pi_file_read_record_by_id(RecordID id, Database dbClass) throws java.io.IOException;
  15.     private native Resource pi_file_read_resource(int index, Database dbClass) throws java.io.IOException;
  16.     private native int pi_file_get_entries() throws java.io.IOException;
  17.     private native DBInfo pi_file_get_info() throws java.io.IOException;
  18.     private native AppBlock pi_file_get_app_info(Database dbClass) throws java.io.IOException;
  19.     private native SortBlock pi_file_get_sort_info(Database dbClass) throws java.io.IOException;
  20.     private native void pi_file_set_info(DBInfo info) throws java.io.IOException;
  21.     private native void pi_file_set_app_info(AppBlock app) throws java.io.IOException;
  22.     private native void pi_file_set_sort_info(SortBlock sort) throws java.io.IOException;
  23.     private native void pi_file_append_record(Record rec) throws java.io.IOException;
  24.     private native void pi_file_append_resource(Resource rsc) throws java.io.IOException;
  25.     private native void pi_file_close() throws java.io.IOException;
  26.     private native void pi_file_retrieve(int socket, int card) throws java.io.IOException;
  27.     private native void pi_file_install(int socket, int card) throws java.io.IOException;
  28.     private native void pi_file_merge(int socket, int card) throws java.io.IOException;
  29.     
  30.     private File() {
  31.         _pf = 0;
  32.     }
  33.  
  34.     private File(String name) throws java.io.IOException {
  35.         _pf = 0;
  36.         dbClass = (Database)Database.dbClasses.get(name);
  37.         if (dbClass == null) {
  38.             dbClass = Database.defaultDbClass;
  39.         }
  40.         System.out.println("dbClass = "+dbClass);
  41.         pi_file_open(name);
  42.     }
  43.     
  44.     private File(String name, DBInfo info)  throws java.io.IOException {
  45.         _pf = 0;
  46.         dbClass = (Database)Database.dbClasses.get(name);
  47.         if (dbClass == null) {
  48.             dbClass = Database.defaultDbClass;
  49.         }
  50.         if (info != null)
  51.             pi_file_create(name, info);
  52.         else
  53.             pi_file_open(name);
  54.     }
  55.     
  56.     public static File open(String name) throws java.io.IOException  {
  57.         return new File(name);
  58.     }
  59.  
  60.     public static File create(String name, DBInfo info) throws java.io.IOException  {
  61.         return new File(name, info);
  62.     }
  63.     
  64.     public void close() throws java.io.IOException  {
  65.         /* This function must be idempotent */
  66.         pi_file_close();
  67.     }
  68.     
  69.     public void finalize() throws java.io.IOException  {
  70.         close();
  71.     }
  72.     
  73.     public Record getRecord(int index) throws java.io.IOException  {
  74.         return pi_file_read_record(index, dbClass);
  75.     }
  76.  
  77.     public Record getRecord(RecordID id) throws java.io.IOException  {
  78.         return pi_file_read_record_by_id(id, dbClass);
  79.     }
  80.  
  81.     public void addRecord(Record newRecord) throws java.io.IOException  {
  82.         pi_file_append_record(newRecord);
  83.     }
  84.  
  85.     public void addResource(Resource newResource) throws java.io.IOException  {
  86.         pi_file_append_resource(newResource);
  87.     }
  88.  
  89.     public Record newRecord() throws java.io.IOException  {
  90.         return dbClass.newRecord();
  91.     }
  92.  
  93.     public Record newRecord(RecordID id) throws java.io.IOException  {
  94.         return dbClass.newRecord(id);
  95.     }
  96.  
  97.     public Resource newResource() throws java.io.IOException  {
  98.         return dbClass.newResource();
  99.     }
  100.  
  101.     public Resource newResource(Char4 type, int id) throws java.io.IOException  {
  102.         return dbClass.newResource(type, id);
  103.     }
  104.         
  105.     public Resource getResource(int index) throws java.io.IOException  {
  106.         return pi_file_read_resource(index, dbClass);
  107.     }
  108.  
  109.     public void setAppBlock(AppBlock appblock) throws java.io.IOException  {
  110.         pi_file_set_app_info(appblock);
  111.     }
  112.  
  113.     public void setSortBlock(SortBlock sortblock) throws java.io.IOException  {
  114.         pi_file_set_sort_info(sortblock);
  115.     }
  116.  
  117.     public AppBlock getAppBlock() throws java.io.IOException  {
  118.         return pi_file_get_app_info(dbClass);
  119.     }
  120.  
  121.     public SortBlock getSortBlock() throws java.io.IOException  {
  122.         return pi_file_get_sort_info(dbClass);
  123.     }
  124.     
  125.     public DBInfo getDBInfo() throws java.io.IOException  {
  126.         return pi_file_get_info();
  127.     }
  128.     
  129.     public void setDBInfo(DBInfo info) throws java.io.IOException  {
  130.         pi_file_set_info(info);
  131.     }
  132.  
  133.     public int getRecords() throws java.io.IOException  {
  134.         return pi_file_get_entries();
  135.     }
  136.     
  137.     public void install(Dlp connection, int cardno) throws java.io.IOException  {
  138.         pi_file_install(connection.socket, cardno);
  139.     }
  140.  
  141.     public void retrieve(Dlp connection, int cardno) throws java.io.IOException  {
  142.         pi_file_retrieve(connection.socket, cardno);
  143.     }
  144.  
  145.     public void merge(Dlp connection, int cardno) throws java.io.IOException  {
  146.         pi_file_merge(connection.socket, cardno);
  147.     }
  148.     
  149.     static {
  150.         System.loadLibrary("JavaPisock");
  151.     }
  152. }
  153.  
  154.